package 强化训练;

import java.util.Scanner;

public class 跳石板 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();//当前位置
        int b = sc.nextInt();//目标位置
        //任意的偶数加其约束都不是质数
        int[] dp = new int[b+2];
        dp[b + 1] = -1;
        dp[b] = 1;
        dpHelp(b,dp);
        System.out.println(dp[a] - 1);
    }
    public static void dpHelp(int aim,int[] dp){
        if (aim == 0) return;
        int point = aim;
        int start = aim / 2;
        int end = 0;
        for(int i = start;i < point ; i ++){
            int step = isEquals(i,point);//求当前位置i + 约数 ？= point；
            if (step == 1){
                dp[i] = dp[point] + 1;
                end = i;
                break;
            }
        }
        dpHelp(end,dp);
    }
    /**
     * 传入当前位置，和目标位置，就可以判断当前位置 + 约数 ？= aim
     * @param index
     * @param aim
     * @return
     */
    public static int isEquals(int index ,int aim){
        int ys = index / 2;
        for(int i = 2 ; i <= ys;i++){
            int rem = index / i;
            if (index % i == 0){
                if (index + rem == aim){
                    return 1;//表示当前index的公约数 + index = aim，
                }else if (index + rem < aim){
                    return -1;
                }
            }
        }
        return  -1;//表示当前下标无法达到aim
    }
}
